package com.daxidi.cn.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 通过微信小程序登录时，记录微信小程序的信息，在表中增加用户注册类型

 * </p>
 *
 * @author wsh
 * @since 2020-11-09
 */
@ApiModel("用户信息表")
@Data
@EqualsAndHashCode(callSuper = false)
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 具有唯一性
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty("具有唯一性")
    private Integer id;

    /**
     * 店员ID
     */
    @ApiModelProperty("店员ID")
    private Long clerkId;

    /**
     * 会员id
     */
    @ApiModelProperty("会员id")
    private Long membeId;

    /**
     * 自注册的默认的昵称是用户名，如果是微信则是微信的昵称
     */
    @ApiModelProperty("注册的默认的昵称是用户名，如果是微信则是微信的昵称")
    private String nickname;

    /**
     * 头像url
     */
    @ApiModelProperty("头像url")
    private String avatarurl;

    /**
     * wx的 unionid
     */
    @ApiModelProperty("wx的 unionid")
    private String unionId;

    /**
     * wx openid
     */
    @ApiModelProperty("wx openid")
    private String openId;

    /**
     * 1：微信，微信注册，并公告微信可自动进行登录 2：自注册 3：其他
     */
    @ApiModelProperty("1：微信，微信注册，并公告微信可自动进行登录 2：自注册 3：其他")
    private String appId;

    /**
     * 手机号码 wx获取的手机号码
     */
    @ApiModelProperty("手机号码 wx获取的手机号码")
    private String mobile;

    /**
     * 是否登录过 
     */
    @TableField("isLogin")
    @ApiModelProperty("是否登录过")
    private Boolean isLogin;

    @ApiModelProperty("")
    private String wxCode;

    @ApiModelProperty("")
    private String wxRawdata;

    @ApiModelProperty("")
    private String wxSignature;

    @TableField("wx_encryptedData")
    @ApiModelProperty("")
    private String wxEncrypteddata;

    @ApiModelProperty("")
    private String wxIv;

    @ApiModelProperty("")
    private String wxSessionKey;

    @ApiModelProperty("")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    @ApiModelProperty("")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    @ApiModelProperty("")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date deletedAt;

    @ApiModelProperty("")
    private Boolean enable;


}
